由于调库太多,有时会忘记底层的算法如何实现,即使看paper知道算法是如何运算,也无法熟练的代码落地,所以,温习一下一些机器学习的基本名词解释和具体优化算法。

设自变量 x=(x1,x2,...,xn)Tx=(x_1,x_2,...,x_n)^T

1、当因变量 f(x)f(x) 为标量:

1.1 一阶导数构成的向量为梯度向量

g(x)=f(x)=(fx1,fx2,,fxn)Tg ( \mathbf { x } ) = \nabla f ( \mathbf { x } ) = \left( \frac { \partial f } { \partial x _ { 1 } } , \frac { \partial f } { \partial x _ { 2 } } , \cdots , \frac { \partial f } { \partial x _ { n } } \right) ^ { T }

1.2 二阶导数构成的矩阵为海森矩阵

H=[fx1x1fx1x2fx1xnfx2x1fx2x2fx2xnfxnx1fxnx2fxnxn]H=\left[ \begin{array} { c c c c } { \frac { \partial f} { \partial x _ { 1 } x _ { 1 } } } & { \frac { \partial f} { \partial x _ { 1 }x _{2} } } & { \cdots } & { \frac { \partial f} { \partial x _ { 1 }x _ { n } } } \\ { \frac { \partial f } { \partial x _ { 2 }x _ { 1 } } } & { \frac { \partial f } { \partial x _ { 2 }x _ { 2 } } } & { \cdots } & { \frac { \partial f } { \partial x _ { 2 }x _ { n } } } \\ { \cdots } & { \cdots } & { \cdots } & { \cdots } \\ { \frac { \partial f} { \partial x _ { n }x _ { 1 } } } & { \frac { \partial f } { \partial x _ { n }x _ { 2 } } } & { \cdots } & { \frac { \partial f} { \partial x _ { n }x _ { n } } } \end{array} \right]

2、当因变量 f(x)=(f1(x),f2(x),...,fm(x))Tf(x)=(f_1(x), f_2(x), ... , f_m(x))^T 为向量:

一阶导数构成的矩阵为雅各比矩阵

H=[f1(x)x1f1(x)x2f1(x)xnf2(x)x1f2(x)x2f2(x)xnfm(x)x1fm(x)x2fm(x)xn]H=\left[ \begin{array} { c c c c } { \frac { \partial f _ { 1 } ( \mathbf { x } ) } { \partial x _ { 1 } } } & { \frac { \partial f _ { 1 } ( \mathbf { x } ) } { \partial x 2 } } & { \cdots } & { \frac { \partial f _ { 1 } ( \mathbf { x } ) } { \partial x _ { n } } } \\ { \frac { \partial f _ { 2 } ( \mathbf { x } ) } { \partial x _ { 1 } } } & { \frac { \partial f _ { 2 } ( \mathbf { x } ) } { \partial x _ { 2 } } } & { \cdots } & { \frac { \partial f _ { 2 } ( \mathbf { x } ) } { \partial x _ { n } } } \\ { \cdots } & { \cdots } & { \cdots } & { \cdots } \\ { \frac { \partial f _ { m } ( \mathbf { x } ) } { \partial x _ { 1 } } } & { \frac { \partial f _ { m } ( \mathbf { x } ) } { \partial x _ { 2 } } } & { \cdots } & { \frac { \partial f _ { m } ( \mathbf { x } ) } { \partial x _ { n } } } \end{array} \right]

那么海森矩阵为梯度向量 g(x)g(x) 对自变量 x 的雅各比矩阵:

H=x[g(x)]=x[(fx1,fx2,,fxn)T]=[fx1x1fx1x2fx1xnfx2x1fx2x2fx2xnfxnx1fxnx2fxnxn]H=\nabla _ { \mathbf { x } } [ g ( \mathbf { x } ) ] = \nabla _ { \mathbf { x } } \left[ \left( \frac { \partial f } { \partial x _ { 1 } } , \frac { \partial f } { \partial x _ { 2 } } , \cdots , \frac { \partial f } { \partial x _ { n } } \right) ^ { T } \right]=\left[ \begin{array} { c c c c } { \frac { \partial f} { \partial x _ { 1 } x _ { 1 } } } & { \frac { \partial f} { \partial x _ { 1 }x _{2} } } & { \cdots } & { \frac { \partial f} { \partial x _ { 1 }x _ { n } } } \\ { \frac { \partial f } { \partial x _ { 2 }x _ { 1 } } } & { \frac { \partial f } { \partial x _ { 2 }x _ { 2 } } } & { \cdots } & { \frac { \partial f } { \partial x _ { 2 }x _ { n } } } \\ { \cdots } & { \cdots } & { \cdots } & { \cdots } \\ { \frac { \partial f} { \partial x _ { n }x _ { 1 } } } & { \frac { \partial f } { \partial x _ { n }x _ { 2 } } } & { \cdots } & { \frac { \partial f} { \partial x _ { n }x _ { n } } } \end{array} \right]